module(
  name = "pybind11_protobuf",
  version = "0.0.0-20240524-1d7a729",
)

bazel_dep(
    name = "bazel_skylib",
    version = "1.5.0",
)

bazel_dep(
    name = "abseil-cpp",
    version = "20230802.0.bcr.1",
    repo_name = "com_google_absl",
)

bazel_dep(
    name = "abseil-py",
    version = "2.1.0",
    repo_name = "com_google_absl_py",
)

bazel_dep(
    name = "platforms",
    version = "0.0.8"
)

bazel_dep(
    name = "pybind11_bazel",
    version = "2.11.1.bzl.2",
)

bazel_dep(
    name = "protobuf",
    version = "23.1",
    repo_name = "com_google_protobuf"
)

bazel_dep(
  name = "grpc",
  version = "1.56.3.bcr.1",
  repo_name = "com_github_grpc_grpc",
)

bazel_dep(
    name = "rules_python",
    version = "0.31.0",
)

SUPPORTED_PYTHON_VERSIONS = [
  "3.12",
  "3.11",
  "3.10",
  "3.9",
  "3.8"
]

DEFAULT_PYTHON = "3.11"

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
[
  python.toolchain(
    python_version = version,
    is_default = version == DEFAULT_PYTHON,
  )
  for version in SUPPORTED_PYTHON_VERSIONS
]

use_repo(
    python,
    python = "python_versions",
)

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
[
  pip.parse(
    hub_name = "pybind11_protobuf_py_deps",
    python_version = version,
    requirements_lock = "//pybind11_protobuf/requirements:requirements_lock_" + version.replace('.','_') + ".txt",
  )
  for version in SUPPORTED_PYTHON_VERSIONS

]

use_repo(pip, "pybind11_protobuf_py_deps")